import Popup from 'mint-ui/packages/popup'
import Icon from 'components/icon/index.vue'
import CalendarItem from 'components/calendar-item/index.vue'
import moment from 'moment'
moment.locale('zh-cn')

/**
 * dateObj:{
 *    '2017-01-01':{
 *      name: '2017-01-01',
 *      date: memont(),
 *      year: 2017,
 *      month: 1,
 *      day: 1,
 *      weekday: 0,         周日
 *      week: 1,            第一周
 *      isHoliday: false,   是否假日
 *      festival: '',       节日,默认是农历, 法定节日 > 外国节日 > 农历
 *    }
 *
 * }
 */

export default {
  data () {
    return {
      visible: false,
      minDateObj: {},     // 最小日期对象
      maxDateObj: {},       // 最大日期对象
      intervalMonth: [],       // 间隔月份
      currentMonth: null,           // 当前月份
    }
  },
  props: {
    title: {
      type: String,
      default: '出发日期'
    },
    minDate: {
      type: String,
      // default: moment().format()
    },
    maxDate: {
      type: String,
      // default: moment().endOf('month').format()
    }
  },
  created() {
    // console.log('实例已经创建完成');
    this.initDate()
    // this.formatDate()
  },
  methods: {
    show(nowDate){
      this.visible = true
    },
    /**
     * 初始化日期
     */
    initDate(){
      this.minDateObj = (!!this.minDate) ? moment(this.minDate) : moment()    // 默认今天
      this.maxDateObj = (!!this.maxDate) ? moment(this.maxDate) : moment().endOf('month')   // 默认当月最后一天


      var minDateFirst = moment(this.minDateObj).startOf('month')
      var maxDateFirst = moment(this.maxDateObj).startOf('month')
      this.currentMonth = moment(minDateFirst)

      while (minDateFirst <= maxDateFirst) {
        this.intervalMonth.push(moment(minDateFirst))
        minDateFirst.add(1, 'M')
      }

      console.log('时间间隔:', this.intervalMonth)

    },
    getCurrentDay(key){
      return this.dateObj[key]? this.dateObj[key].day: ''
    },
    showCurrentMonth(key){
      console.log('showCurrentMonth: ', key)
      console.log('this.currentMonth: ', this.currentMonth.format('YYYY-MM'))
      return (this.currentMonth.format('YYYY-MM') == key)
    },
    /**
     * 上一月 action
     */
    prevMonthAction(){
      this.currentMonth = moment(this.currentMonth).add(-1, 'M')
    },
    /**
     * 下一月 action
     */
    nextMonthAction(){
      this.currentMonth = moment(this.currentMonth).add(1, 'M')
    }

  },
  computed: {
    currentMonthComputed(){
      return this.currentMonth.format('YYYY年M月')
    }
  },
  components: {
    'mt-popup': Popup,
    Icon,
    CalendarItem
  },
}
